Collaboration environment are generally systems and processes for integrated application development or interaction. A collaboration environment can allow developers or users to employ existing applications or build new applications that can include unified communications technology and, in some situations, contact center capabilities including voice, video, text, and email.
As a platform, a collaboration environment can deliver notifications of events to the various services deployed in or users communicating with the environment. Thus, the collaboration environment allows services to publish events that other services may want to receive. These events can be pre-defined, such as SIP origination and termination events, incoming HTTP requests, incoming email or text messages, system utilization events, etc. The events can be defined by a service, such as a user completing a form on a web application. Events may be sent or received either synchronously, where the event receiver has the opportunity to manipulate the data associated with the event before other event consumers receive the event, or asynchronously, where all receivers are notified at approximately the same time. For synchronous events, a defined order of notifications is generally prescribed.
Unfortunately, current systems do not provide support for both pre-defined and dynamically defined events with varying payloads. Current collaboration environments often have applications and elements that are not able to communicate and provide subscription information and event information between the elements that receive the events. Current collaborative software and workflow systems do not provide seamless subscribing and event distribution with an easy-to-administer user interface. Additionally, the current collaboration environments are not sufficiently general-purpose for many users.